import axios from 'axios'
/* ajax请求,引入axios,实例话axios */
import Vue from 'vue'
import { Toast } from 'vant'
Vue.use(Toast)
// 获取数据源地址,实例话
// 获取到的数据'http://xiongmaoyouxuan.com/api'下面的各种接口,下面的只需要输入api后面的地址就可以
const ajax = axios.create({
  baseURL: 'http://www.xiongmaoyouxuan.com/api'
})

let toast = null

// // 请求拦截
ajax.interceptors.request.use(config => {
  /**
   * 异步请求数据，显示提示框
   */
  toast = Toast.loading({
    message: '加载中...',
    forbidClick: true
  })
  return config
})
// 二次封装里的,进行响应拦截
ajax.interceptors.response.use(resData => {
  toast.clear()
  if (resData.status === 200) { // 发起请求的时候成功与否
    if (resData.data.code === 200) { // 服务器成功与否
      return resData.data.data
    }
  }
  return Promise.reject(new Error('holy shit'))
})
// 获取数据,将其抛出
export const getBanner = () => {
  return ajax.get('tab/1?start=0')// 这个return出来的是一个promise对象这里就单单只是定义一个promise对象,在某个地方使用的时候,就能使用promise下的then方法
}

// 获取分类
export const getCategories = () => {
  return ajax.get('/tabs?sa=')
}

// 获取二级分类
export const getSubcategories = pid => {
  return ajax.get(`/tab/${pid}?start=0`)
}

// 搜索热门数据获取
export const getSearch = () => {
  return ajax.get('search/home')
// 获取商品列表数据
}
export const getList = (url, page) => {
  let realUrl = '' // 真实访问的接口地址
  const id = url.slice(url.lastIndexOf('=') + 1) // 分类id
  const start = (page - 1) * 20 // 查询当页数据的起始索引

  if (url.startsWith('youxuan://column')) {
    realUrl = '/column'
  } else {
    realUrl = '/category'
  }
  realUrl = `${realUrl}/${id}/items?start=${start}`

  return ajax.get(realUrl).then(data => {
    return data.list || data.items.list
  })
}

// 商品详情
export const getDetail = id => {
  return ajax.get(`/detail?id=${id}`)
}
